package com.qijian.business.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
public class QualityBasicDto extends QualityInspectDto {
    /**
     * 唯一id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    /**
     * 质检名称
     */
    @Excel(name = "质检名称")
    @ApiModelProperty(value = "质检名称")
    private String name;

    /**
     * 质检编号
     */
    @Excel(name = "质检编号")
    @ApiModelProperty(value = "质检编号")
    private String number;


    /**
     * 质检人员id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "质检人员id")
    private Long qualityUserId;

    /**
     * 质检人员名称
     */
    @Excel(name = "质检人员名称")
    @ApiModelProperty(value = "质检人员名称")
    private String qualityUserName;


    /**
     * 产品名称
     */
    @ApiModelProperty(value = "产品名称")
    private String productName;

    /**
     * 来源合同详情id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "来源合同详情id")
    private Long productSourceDetailId;

    /**
     * 产品id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "产品id")
    private Long productId;

    /**
     * 产品编号
     */
    @ApiModelProperty(value = "产品编号")
    private String productNumber;

    /**
     * 产品规格
     */
    @ApiModelProperty(value = "产品规格")
    private String productSpecification;

    /**
     * 产品单位
     */
    @ApiModelProperty(value = "产品单位")
    private String productUnit;

    /**
     * 单价
     */
    @ApiModelProperty(value = "单价")
    private BigDecimal productUnitPrice;

    /**
     * 总金额
     */
    @ApiModelProperty(value = "总金额")
    private BigDecimal productTotalAmount;

    /**
     * 产品批号
     */
    @ApiModelProperty(value = "产品批号")
    private Long productBatchNo;

    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "生产日期")
    private Date producedDate;

    /**
     * 有效日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "有效日期")
    private Date validityDate;

    /**
     * 到货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "到货日期")
    private Date arrivalDate;

    /**
     * 到货数量
     */
    @ApiModelProperty(value = "到货数量")
    private Integer arrivalCount;

    @ApiModelProperty(value = "采购合同数量")
    private Integer contractCount;

    /** 包装方式 */
    @ApiModelProperty(value = "包装方式")
    private Integer packingMethod;

    @ApiModelProperty(value = "产品备注")
    private String productRemark;

}
